Angular service worker 不缓存 post 请求
Angular service worker not caching post requests
有谁知道 angular service worker 是否没有缓存 post
要求 ?我使用 @angular 5.2.5 将它集成到我的应用程序中,它
缓存一些请求,但其中一些是 posts 而那些他
即使它们匹配我指定的 urls 模式也不会缓存。
这是我的 ngsw-config.json
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html"
],
"versionedFiles": [
"/*.bundle.css",
"/*.bundle.js",
"/*.chunk.js"
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
],
"urls": [
"**/fonts.googleapis.com/**/*",
"**/www.gstatic.com/**/*"
]
}
}
],
"dataGroups": [
{
"name": "api-performance",
"urls": [
"/api/attachments/*"
],
"cacheConfig": {
"maxSize": 200,
"maxAge": "7d",
"timeout": "10s",
"strategy": "performance"
}
},
{
"name": "api-freshness",
"urls": [
"/api/*",
"/api/**/*",
"/api/**/**/*",
"/api/**/**/**/*",
"/api/views/*",
"/api/app-structure",
"/api/workflow/view",
"/api/issues/*",
"/.well-known",
"/certs"
],
"cacheConfig": {
"maxSize": 200,
"maxAge": "2d",
"timeout": "10s",
"strategy": "freshness"
}
}
]
}
这只是为了测试而添加的,因为 /views 没有被缓存,而且
一个是 post 请求,我尝试添加通配符以匹配
模式但没有成功 "/api/*", "/api/**/*", "/api/**/**/*", "/api/**/**/**/*"
.
我在使用 chrome 在生产构建中测试我的网站时遇到问题
因为对于我们内部的生产环境,我们正在使用
selfsigned certified 有人知道这个的解决方法吗?我
试过 这个
回应
但是 chrome 仍然显示错误并且 service worker 不是 运行
Angular Service Worker 不缓存 post 请求,在我看来这是一个正确的设计原则。如果您尝试在离线时添加记录并希望在联机时与服务器数据同步,您可以尝试使用 IndexedDb 或 PouchDb(JavaScript 无缝同步的数据库)。
这里有一些开始使用 PouchDB 的参考文章
这不是 Angular 问题,这是由于服务工作者的运作方式所致。目前,service workers 不缓存任何 post 请求。关注此讨论了解更多详情 https://github.com/w3c/ServiceWorker/issues/977
有谁知道 angular service worker 是否没有缓存 post 要求 ?我使用 @angular 5.2.5 将它集成到我的应用程序中,它 缓存一些请求,但其中一些是 posts 而那些他 即使它们匹配我指定的 urls 模式也不会缓存。 这是我的 ngsw-config.json
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html"
],
"versionedFiles": [
"/*.bundle.css",
"/*.bundle.js",
"/*.chunk.js"
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
],
"urls": [
"**/fonts.googleapis.com/**/*",
"**/www.gstatic.com/**/*"
]
}
}
],
"dataGroups": [
{
"name": "api-performance",
"urls": [
"/api/attachments/*"
],
"cacheConfig": {
"maxSize": 200,
"maxAge": "7d",
"timeout": "10s",
"strategy": "performance"
}
},
{
"name": "api-freshness",
"urls": [
"/api/*",
"/api/**/*",
"/api/**/**/*",
"/api/**/**/**/*",
"/api/views/*",
"/api/app-structure",
"/api/workflow/view",
"/api/issues/*",
"/.well-known",
"/certs"
],
"cacheConfig": {
"maxSize": 200,
"maxAge": "2d",
"timeout": "10s",
"strategy": "freshness"
}
}
]
}
这只是为了测试而添加的,因为 /views 没有被缓存,而且
一个是 post 请求,我尝试添加通配符以匹配
模式但没有成功 "/api/*", "/api/**/*", "/api/**/**/*", "/api/**/**/**/*"
.
我在使用 chrome 在生产构建中测试我的网站时遇到问题 因为对于我们内部的生产环境,我们正在使用 selfsigned certified 有人知道这个的解决方法吗?我 试过 这个 回应 但是 chrome 仍然显示错误并且 service worker 不是 运行
Angular Service Worker 不缓存 post 请求,在我看来这是一个正确的设计原则。如果您尝试在离线时添加记录并希望在联机时与服务器数据同步,您可以尝试使用 IndexedDb 或 PouchDb(JavaScript 无缝同步的数据库)。
这里有一些开始使用 PouchDB 的参考文章
这不是 Angular 问题,这是由于服务工作者的运作方式所致。目前,service workers 不缓存任何 post 请求。关注此讨论了解更多详情 https://github.com/w3c/ServiceWorker/issues/977